package com.longdaji.decoration.ui.pay;


import com.longdaji.decoration.base.BasePresenter;
import com.longdaji.decoration.base.BaseView;
import com.longdaji.decoration.data.bean.AddressBean;
import com.longdaji.decoration.data.bean.AvailableMoneyBean;
import com.longdaji.decoration.data.bean.AvailableScoreBean;
import com.longdaji.decoration.data.bean.CartBean;
import com.longdaji.decoration.data.bean.GoodsAccountBean;
import com.longdaji.decoration.data.bean.LogisticsBean;
import com.longdaji.decoration.data.bean.PakageBean;

import java.util.List;

import okhttp3.RequestBody;

/**
 * Created by longtao on 2017/12/19.
 */

public interface PayContract {

    interface View extends BaseView {
        void showData(GoodsAccountBean goodsAccountBean);

        void showDefaultAddress(AddressBean.Address address);

        void showAddressList(List<AddressBean.Address> addressList);

        void showGetOrderInfoSuccess(String orderInfo);

        void showGetOrderInfoFail();

        void showNoDefaultAddress();

        void showCreateOrderFail();

        void showCreateOrderSuccess(String orderId);

        void showDefaultPakage(List<PakageBean> pakageList);

        void showNoPakage();

        void showDefaultLogistics(List<LogisticsBean> logisticsList);

        void showNoLogistics();

        void showAvailableScore(AvailableScoreBean scoreBean);

        void showDefaultAvailableScore();

        void showAvailableMoney(AvailableMoneyBean moneyBean);

        void showDefaultAvailableMoney();

        void showInviteCodeValid();

        void showInviteCodeInvalid();
    }

    interface Presenter extends BasePresenter<View> {

        void getAccountData(String userId, List<CartBean.Cart> cartGoodsList);

        void getDefaultAddress(String userId);

        void getAddressList(String userId);

        void getPayOrderInfo(String orderId);

        void getPakagePattern();

        void getLogisticsPattern();

        void getAvailableMoney(String userId);

        void getAvailableScore(String userId);

        void createOrder(RequestBody body);

        void verifyInviteCode(String inviteCode);

    }
}
